package com.kinyx.framework.utils;

import javax.util.XArrayList;

import org.junit.Assert;
import org.junit.Test;

import lombok.AllArgsConstructor;

@AllArgsConstructor
public class KStringUtils_Tester_hump2underline {

	@Test
	public void test() {
		Assert.assertEquals(null, KStringUtils.hump2underline(null));
		Assert.assertEquals(null, KStringUtils.hump2underline("null"));

		Assert.assertEquals("", KStringUtils.hump2underline(""));
		Assert.assertEquals(" ", KStringUtils.hump2underline(" "));

		Assert.assertEquals("FOO_BAR_QUX", KStringUtils.hump2underline("fooBarQux"));
		Assert.assertEquals("MALFORMED_URL_EXCEPTION", KStringUtils.hump2underline("MalformedURLException"));
		Assert.assertEquals("IO_EXCEPTION", KStringUtils.hump2underline("IOException"));

		Assert.assertEquals("C01_STRING", KStringUtils.hump2underline("c01_String"));
	}

	@Test
	public void test2() {
		new XArrayList<String>()//

				.xAdd(null)//
				.xAdd("null")//

				.xAdd("")//
				.xAdd(" ")//

				.xAdd("FOO_BAR_QUX")//
				.xAdd("MALFORMED_URL_EXCEPTION")//
				.xAdd("IO_EXCEPTION")//
				.xAdd(null)//
				.xAdd(null)//
				.xAdd(null)//
				.forEach(str -> {
					if ("null".equals(str)) {
						Assert.assertEquals(null, KStringUtils.hump2underline(KStringUtils.underline2hump(str)));
					} else {
						Assert.assertEquals(str, KStringUtils.hump2underline(KStringUtils.underline2hump(str)));
					}
				});
	}

}
